package com.jf.blogbackened.controller;

import com.alibaba.fastjson.JSON;
import com.jf.blogbackened.bean.Category;
import com.jf.blogbackened.bean.Result;
import com.jf.blogbackened.service.CategoryService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * @author David
 */
@RestController
@RequestMapping("/category")
public class CategoryController {
    //Restful风格
    // 将请求参数（Get请求）和URI拼接在一起，简化传参的方式
    // 提高参数传递的安全性（他把参数值和URI拼接在一起，用户无法直接看出参数名称）http://guolin.tech/api/china/16/113就是一个Restful风格的传参方式
    // RESTful风格就是把请求参数变成请求路径的一种风格

    @Resource
    private CategoryService categoryService;
    @GetMapping("/getCategory/{currentPage}/{pageSize}")
    public String getCategory(@PathVariable Integer currentPage,@PathVariable Integer pageSize){
        Result res = categoryService.getPageData(null, currentPage,pageSize);
        return JSON.toJSONString(res);
    }

    /**
     *
     * 获取全部的分类信息
     * @return
     *      JSON字符串
     */

    @GetMapping("/getAllCategory")
    public String getAllCategory(){
        Result res = categoryService.getAllCategory();
        return JSON.toJSONString(res);
    }

    @GetMapping("/searchByName/{name}/{currentPage}/{pageSize}")
    public String getCategory(@PathVariable String name,@PathVariable Integer currentPage,@PathVariable Integer pageSize){
        Result res = categoryService.getPageData(name,currentPage,pageSize);
        return JSON.toJSONString(res);
    }
    /**
     * 根据Id获取分类信息
     */
    @GetMapping("/getCategoryById/{id}")
    public String getCategoryById(@PathVariable Integer id){
        Result res = categoryService.getCategoryById(id);
        return JSON.toJSONString(res);
    }

    /**
     * 删除分类信息
     */
    @GetMapping("/delCategoryById/{id}")
    public String delCategoryById(@PathVariable Integer id){
        Result res = categoryService.delCategoryById(id);
        return JSON.toJSONString(res);
    }
    /**
     * 添加和修改分类
     */
    @PostMapping("/addOrUpdateCategory")
    public String addOrUpdateCategory(@RequestBody Category category){
        Result res = null;
        if (category.getId()==null){
            // 进行添加操作
           res= categoryService.insert(category);
        }else {
            res= categoryService.update(category);
        }
        return JSON.toJSONString(res);
    }
}
